/*
AJAX
//http://www.javarss.com/ajax/j2ee-ajax.html
*/
// Inicializace AJAXu
function ajax_init(){
if (window.XMLHttpRequest)
{
AJAXForms = new XMLHttpRequest();
// branch for IE/Windows ActiveX version
} // end if
else if (window.ActiveXObject)
{
AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");
} // end else
} // end function
// ---
// volani js funkce 'function_name' pres ajax
function processRequest(function_name) {
if ( typeof( window["AJAXForms"]) != "undefined" )
{
if (AJAXForms.readyState == 4)
{
if (AJAXForms.status == 200)
{
if (function_name == "")
{
function_name = "processChange";
} // end if
eval(function_name + "();");
} // end if
else
{
/* alert ( "Not able to retrieve description" ); */
} // end else
} // end if
} // end if
} // end function
// ---
// ajaxovy submit - ilustracni priklad - aplikacni funkce se z teto funkce rozpiruje a prejmenuje
function ajax_submit()
{
// inicilizace
ajax_init();
// sestaveni parametru pro volani - pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()"
parameters = "";
// automaticke nacteni dat z vybraneho formulare ve formatu pro URL vcetne prevedeni na escape sekvence pokud je to vyzadovano
queryString = get_fullformquery("ass_form");
// doplneni dalsich parametru - pokud by se posilal text (mezery, spec. znaky a atd..), musel by osetrit js funkci "escape()" => ("napis=" + escape("český nadpis") )
parameters = parameters + "group=ass";
parameters = parameters + queryString; // doplneni parametru z fomulare
// ---
// sestaveni url pro php skript, ktery bude vracet (tisknout! => echo) data
// pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()"
// bylo by dobre, aby se vsechny ajaxove vystupy osetrovali na jednom miste (ajax_action.php) - rozliseni podle parametru "group".
url = get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php";
// ---
// 1. moznost odesilat data postem
/*
AJAXForms.onreadystatechange = function () { processRequest("processChange"); }; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup
AJAXForms.open('POST', url, true);
AJAXForms.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AJAXForms.setRequestHeader("Content-length", parameters.length);
AJAXForms.setRequestHeader("Connection", "close");
AJAXForms.send(parameters);
*/
// 2. moznost
/*
AJAXForms.onreadystatechange = function () { processRequest("processChange"); } ; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup
AJAXForms.open("POST", get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php?" + parameters);
AJAXForms.send(null);
*/
// POZOR AJAX vraci vzdy jediny vystup "AJAXForms.responseText".
} // end function
// ---
// implicitni osetreni aktualizace html kodu daty z ajaxe (AJAXForms.responseText) - ilustracni
function processChange() {
alert(AJAXForms.responseText);
// ilustracni priklad pouziti s naplnenim divu "asistent" vygenerovanymi daty a naslednym, podminenym, refocusem na input
/*
var res = ge("asistent");
res.innerHTML = AJAXForms.responseText;
if (ass_last_control_id != 0)
{
refocus("ass_form", ge_n(ass_last_control_id));
} // end if
*/
} // end function
// ---
/*
// ---
*/